没有找到适合的图片
某驱动脱壳 vmp
最近遇到个加了VMP壳的驱动,顺手记录一下(图片中的地址有的对不上因为有的图是后来补的)
拿到手先查个壳发现是VMP,(已经准备回收站了)
准备环境Win7 Windbg配置好驱动调试
驱动入口首字节改CC,然后修复CheckSum,要不然Win检测到PE文件CheckSum不正确是会拒绝加载的
加载驱动
直接断到Windbg
eb xx 90 修复修改的字节
然后直接pc断到第一个call调用(这里应该就是VMP的call Handler)
目测vmp2.x直接在这里下一个断点,然后经过多次g后来到IoFreeMdl(前面主要就是VMP映射PMD填充恢复.text,.rdata,INI等节区内容)
然后键入pc回车来到一个看起来终于正常点的call
!dh fffff880`0560b000 查看PE结构看看这个call所在的位置
在INIT节里到这里基本上就可以dump了,因为一般来说驱动入口点函数都在INIT节中
入口点直接填这个函数头的位置
dump好后IDA打开
可以看到IDA已经自动把__security_init_cookie
识别出来了,基本可以确定这里是GsDriverEntry函数(开启GS编译选项默认入口点就是GsDriverEntry,而我们写的DriverEntry则由GsDriverEntry调用可以看到后面的jmp DriverEntry),只是这个驱动的DriverEntry函数被V
不过看了一下主要是INIT区段的DriverEntry函数被V,其他的.text段倒是没问题,就是有个小问题,dump的时候导入表没有修复
不过问题不大可以配合IDA手动修复一下,先在Windbg里使用dps查看导入表
然后复制到txt里
然后写个脚本修复一下
修复后看的就比较舒服了
剩下的工作交给手艹艹艹